package com.leetcode.array;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
 * Given numRows, generate the first numRows of Pascal's triangle.

For example, given numRows = 5,
Return
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]
 * @author Adiy
 *
 */
public class PascalsTriangle {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int m=in.nextInt();
		List<List<Integer>> results=generate(m);
		System.out.println(results);

	}

	public static List<List<Integer>> generate(int numRows) {
	     List<List<Integer>>   results=new ArrayList<List<Integer>>();
	     if(numRows==0) return results;
	     else {
	    	 List<Integer> listone=new ArrayList<Integer>();
	    	 listone.add(1);
	    	 results.add(listone);
	     }
	     for(int i=1;i<numRows;i++){
	    	 List<Integer> list=new ArrayList<Integer>();
	    	 list.add(0,1);
    		 
	    	 int j=1;
	    	 while(j<=i&&j<results.get(i-1).size()){
	    		
	    		 list.add(j, results.get(i-1).get(j-1)+results.get(i-1).get(j));
	    		 j++;
	    	 }
	    	 list.add(i,1);
	    	 results.add(list);
	     }
	     
	    return results;
	}
//	public static List<Integer> generateList(List<Integer> list,int len){
//		int size=list.size();
//		int count=0;
//		if(size==len) return list;
//		if(size<len){
//			if(len==0) list.add(1);
//			if(len==1) list.add(1);
//			if(len>1){
//				for(int i=0;i+1<len;i++){
//					   list.add(i+1,list.get(i)+list.get(i+1));
//					   count++;
//			    }
//				for(int j=0;j<count;j++){
//				
//				}
//				
//			}
//			   
//				
//		}
//	}
}
